package com.haoma.excel.utils;

import com.alibaba.excel.EasyExcel;

import javax.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.util.List;

/**
 * 工具类
 */
public class ExcelUtil {

    /**
     * 导出excel
     *
     * @param response
     * @return
     */
    public static <T> void download(HttpServletResponse response, List<T> list, Class<T> clazz) {
        try {
            // 设置了响应类型
            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            // 这里URLEncoder.encode可以防止中文乱码
            String fileName = URLEncoder.encode("测试", "UTF-8").replaceAll("\\+", "%20");
            // 告诉浏览器需要下载
            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
            // 下载excel
            EasyExcel
                    // 使用输出字节码文件流
                    .write(response.getOutputStream(), clazz)
                    // 创建工作表
                    .sheet()
                    // 写入数据
                    .doWrite(list);
        } catch (Exception e) {
            e.getMessage();
        }
    }
}